Local network alert system for mobile devices using an IMS session and Wi-Fi access point

ABSTRACT

A wireless emergency alert system (also known as a wireless emergency alert system, or “WEA,” and formerly known as a commercial mobile alert system, or “CMAS”) receives a geotargeted federal alert that is to be delivered to mobile devices within a defined geographic region. A database of locations of access points is utilized by the system to identify those access points that are likely present in the defined region. The system identifies mobile devices that have an ongoing connection (e.g. IP multimedia subsystem (IMS) session) with the identified access points, in part by maintaining and accessing a look-up table containing location information for the access point and connected mobile devices. In addition, the system tracks mobile devices that no longer have an ongoing session and deregisters the appropriate mobile devices in the look-up table. For mobile devices that have an ongoing session, the system delivers the received alert to the mobile devices in the targeted region via the identified access points.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.13/912,127 filed Jun. 6, 2013, entitled “LOCAL NETWORK ALERT SYSTEM FORMOBILE DEVICES USING AN IMS SESSION AND WI-FI ACCESS POINT”, now U.S.Pat. No. 9,271,135, which claims the benefit of U.S. ProvisionalApplication No. 61/801,200, entitled “LOCAL NETWORK ALERT SYSTEM FORMOBILE DEVICES USING AN IMS SESSION AND WI-FI ACCESS POINT,” filed Mar.15, 2013.

BACKGROUND

Mobile devices, such as wireless and cordless phones, handheldcomputers, smartphones, and media players, among others, have becomeubiquitous. Most mobile devices, if not all, have messagingcapabilities, such as text messaging via SMS (Short Message Service) andmultimedia messaging via MMS (Multimedia Message Service). SMS and MMShave become popular modes of transmitting information to mobile deviceusers. In addition, some fixed devices now share mobile device platformsand services. In particular, Unlicensed Mobile Access (UMA) devices,which may be fixed and replicate traditional “landline” operate on bothcellular and IP-based networks.

In an emergency situation, such as a terror attack or a natural disaster(e.g., hurricane, tornado, and earthquake), it may be desirable to alertmembers of the public located in the particular area of the emergencysuch that they may have sufficient warning or receive instructions forresponding to the emergency. Alternatively, it may be desirable to alertmembers of the public within a specific geographical area of acommercial offering that is available at a nearby retail location.

Current systems are designed to send alert messages to mobile users byidentifying traditional cellular base stations that are located in atarget area for a given alert. The alert is sent to each cellular basestation in the target area, each base station then forwards the alert toeach mobile phone that is connected to the respective base station.However, these traditional alert systems do not offer the ability toreach mobile devices that use a WiFi access point (rather than atraditional base station) to connect to a telecommunications networksuch as an IP for Multimedia Subsystem (IMS) network. Therefore, a needexists for an alert system that tracks the physical location of WiFiaccess points and forwards alert messages to devices (such as mobiledevices or other IMS-enabled devices) that are connected to the WiFiaccess points that are situated in a target region. Overall, theexamples herein of some prior or related systems and their associatedlimitations are intended to be illustrative and not exclusive. Otherlimitations of existing or prior systems will become apparent to thoseof skill in the art upon reading the following Detailed Description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B show a system level schematic illustration of an alertsystem operable to implement aspects of the invention. Hereinafter,FIGS. 1A and 1B will collectively be referred to as FIG. 1.

FIG. 2 illustrates a look-up table 200 that operates in accordance withthe embodiments disclosed herein.

FIG. 3 is a flow diagram of a method for targeted broadcasting of alertmessages.

FIG. 4 is a geographic illustration of a target area covering portionsof several counties having devices located throughout.

DETAILED DESCRIPTION

A wireless emergency alert system (“WEA,” and formerly known as acommercial mobile alert system, or “CMAS”) receives a geotargetedfederal alert that is to be delivered to mobile devices within a definedgeographic region. A database of locations of WiFi access points isutilized by the system to identify those access points that are likelypresent in the defined region. The system identifies mobile devices thathave an ongoing IP multimedia subsystem (IMS) session with theidentified WiFi access points, in part by maintaining and accessing alook-up table containing location information for the WiFi access pointand connected mobile devices. In addition, the system tracks mobiledevices that no longer have an ongoing IMS session and deregisters theappropriate mobile devices in the look-up table. For mobile devices thathave an ongoing IMS session, the system delivers the received alert tothe mobile devices in the targeted region via the identified Wi-Fiaccess points.

Various examples of the invention will now be described. The followingdescription provides specific details for a thorough understanding andenabling description of these examples. One skilled in the relevant artwill understand, however, that the invention may be practiced withoutmany of these details. Likewise, one skilled in the relevant art willalso understand that the invention incorporates many other obviousfeatures not described in detail herein. Additionally, some well-knownstructures or functions may not be shown or described in detail below,so as to avoid unnecessarily obscuring the relevant description.

The terminology used below is to be interpreted in its broadestreasonable manner, even though it is being used in conjunction with adetailed description of certain specific examples of the invention.Indeed, certain terms may even be emphasized below; any terminologyintended to be interpreted in any restricted manner will, however, beoverly and specifically defined as such in this Detailed Descriptionsection.

System Description

FIG. 1 shows a system level schematic illustration of an alert system100, for example a Wireless Emergency Alert System (WEA). The alertsystem 100 comprises an alerting network 102 (including an alert gateway105) coupled to a broadcasting network 104 operable to transmit targetedalerts to one or more mobile devices 110 located within a WiFi coveragearea 170. The one or more mobile devices 110 may be coupled to thebroadcasting network 104 through an access point 180, such as a wirelessrouter. The alerting network 102 is operable to send an alert messagefrom alert gateway 105 to the broadcasting network 104 for transmissionto one or more mobile devices 110 positioned in a specific geographictarget area 108, such as a FIPS code, ZIP code, Census Code, or otherregion, as described in more detail below. Alert gateway 105 transmitsalert messages issued by an agency such as a federal government. Forexample, under WEA, alert gateway 105 may transmit alerts issued by thePresident of the United States, alerts involving imminent threats tosafety or life, and/or AMBER alerts. The mobile devices 110 may be anyof a variety of mobile devices, such as wireless phones, UnlicensedMobile Access or UMA-enabled devices (also known as Generic AccessNetwork (GAN) devices), handheld computers, smartphones, media players,and the like that are enabled for use within at least the target area108. In addition to specifying one or more target areas, an alertmessage may also include various instructions for responding to anemergency. For example, an alert message may warn residents of anapproaching tornado or hurricane and direct residents to available stormshelters.

Target area 108 may include one or more IP-based networks, particularlyWiFi networks (or “hotspots”) featuring a WiFi access point such as awireless router for sending and receiving data over unlicensed spectrum.A WiFi network allows multiple WiFi enabled devices, such as mobilephones and personal computers, to communicate over various public orprivate communications networks, such as the Internet. A WiFi accesspoint within a WiFi network typically provides Internet access tomultiple user devices within a limited geographic area. For example,FIG. 1 includes WiFi access point 180 a which resides within the WiFinetwork and provides Internet access to multiple users located inside ofa coffee shop. Similarly, access point 180 b resides the within WiFinetwork 170 b and provides Internet access to multiple users within aresidential home, access point 180 c resides within the WiFi network 170c and provides Internet access to multiple users within a schoolbuilding, access point 180 d resides within the WiFi network 170 c andprovides Internet access to multiple users within a school building, andaccess point 180 e resides within the WiFi network 170 e and providesInternet access to multiple user located on a bus.

The alerting network 102 may send a target area signal to broadcastingnetwork 104, the target signal including geographic location informationcorresponding to target area 108. Alternatively, the alert gateway 105may embed the geographic location information in the alert message. Thegeographic location information may include place name information suchas, for example, Potomac River Valley or the like. In other embodiments,the geographic location information may take the form of a FIPS code,ZIP code, or GPS coordinates. Federal Information Processing Standards(FIPS) codes, like Census Codes, are used by the U.S. government tostandardize the identification of different entities, such as states andcounties. These codes are issued by the National Institute of Standardsand Technology. For example, each county in the United States isassigned a FIPS code. ZIP codes on the other hand designate quadrants orlocations within a county. The broadcasting network 104 determines oneor more access point identifiers (e.g., an IP address or MAC address)associated with one or more access points located at least partiallywithin target area 108.

The broadcasting network 104 may calculate a shape (e.g., a polygon)from the geographic location information (e.g., FIPS, ZIP, or GPScoordinates) included in the target area signal (or alert message) thatrepresents the target area 108. In some embodiments, the geographiclocation information may already be in the form of a shape (e.g., a5-mile radius with a center at a defined coordinate, or a polygon) thatrepresents the target area 108. The broadcasting network 104 determinesan adjusted target area 114 that substantially estimates the target area108. In other words, the adjusted target area 114 may enclose or overlaythe target area 108. The broadcasting network 104 may then determine themobile devices that are connected to the access points 180 a (coffeeshop), 180 b (home), 180 c (school), and/or 180 d (library) and forwardthe alert message to only those mobile devices without substantiallybroadcasting the alert message to mobile devices connected to accesspoint 180 e (bus), which lies outside of the adjusted target area 114.In the example of FIG. 1, the alert message would be transmitted tomobile devices 110 a and 110 b (connected to access point 180 a), mobiledevices 110 c and 110 d (connected to access point 180 b), and mobiledevices 110 e, 110 f, and 110 g (connected to access point 180 c).Further, in the example of FIG. 1, the alert message would not betransmitted to mobile devices 110 h and 110 i (connected to access point180 e).

An alert message may be in a variety of formats, including the CommonAlerting Protocol (CAP) format. The CAP is an XML-based data format forexchanging public warnings and emergencies between alertingtechnologies. CAP allows a warning message to be consistentlydisseminated simultaneously over many warning systems to manyapplications. The alert gateway 105 may receive an alert message (e.g.,alert message in CAP format) from the alerting network 102 and convertthe alert message into a format supported by the broadcasting network104 (e.g., a text profile base Commercial Mobile Alert Message (CMAM)format). The alert gateway 105 sends the converted alert message,hereinafter CMAM, to the broadcasting network 104.

The broadcasting network 104 comprises multiple components common to IMSnetworks. The broadcasting network includes a location/applicationserver 140 and location information databases 145 a-145 d. Additionally,the broadcasting network 104 includes a look-up table database 150operable to track access points serving mobile devices registered to theIMS network, as described in more detail below. The location informationdatabases contain various types of information that thelocation/application server 140 may use to determine the location (suchas GPS coordinates) of one or more access points 180 that are connectedto the broadcasting network 104. For example, database 145 a may containMAC address information, database 145 b may contain GSM WCDMAinformation, database 145 c may contain customer address information,and/or database 145 d may contain public IP information. The CBC 130receives the CMAM from the alert gateway 105. The CMAM may include thegeographic location information of the target area 108 embedded in theCMAM. Alternatively, according to one embodiment, the CBC 130 mayreceive the target area signal from the alerting network 102, whereinthe target area signal provides the geographic location information ofthe target area 108. In such embodiment, the target area signal is sentin addition to the CMAM (i.e., alert message). This target area signalhaving the geographic location information may also be converted intotext profile based CMAM format. The CBC 130 may run a validation test onthe CMAM and send an error response to the alerting network 102 if theCMAM fails validation. Such may result in the CMAM not being broadcast.

The location/application server 140 receives the geographic locationinformation of the target area 108 from the CBC 130. Although FIG. 1illustrates the location/application server 140 as a separate componentfrom the CBC 130, in some embodiments the location/application server140 may be embedded within the CBC 130, such as operating on the sameserver. The geographic location information may, for example, be in theform of FIPS, ZIP, GPS coordinates, or a defined shape. If thegeographic location information is received in the form of FIPS, ZIP, orGPS coordinates, the location/application server 140 transforms thegeographic location information into the shape (e.g., a polygon)representing the target area 108. Otherwise, the geographic locationinformation received from the CBC 130 is already in a form of the shaperepresentative of the target area 108. The transformation into therepresentative shape (e.g., a polygon) of the target area 108 may occurin real-time or near real-time to provide a more accurate alert andrespond to changes that may occur periodically, such as daily changes orhourly changes. For example, daily changes may be in the form of changesin the boundaries of the target area 108 in response to changes in theemergency conditions. For example, path changes of a hurricane ortwister, wind shifts during forest fires, or updated intelligence on animminent terror attack may reflect a change in the boundaries of thetarget area 108. In some embodiments, the alerting network 102 providesthe CBC 130 with external data, e.g., meteorological data and/or updatedintelligence data, to show changes in hurricane or twister path or othernatural disaster, and/or changes to a potential terror area. Theexternal data can be used by components of the broadcasting network 104to alter the boundaries of the target area 108 in real-time. In someembodiments, the alerting network 102 provides the CBC 130 with a linkto external data such as an Internet Web site to retrieve information(e.g., location, threat nature, threat severity, threat duration, etc.)regarding an alert message.

The location/application server 140 has access to one or more databases145 a-145 d and 150 including identification, location, and/orgeographic coverage information for access points 180 a-180 e and/orareas served by access points 180 a-180 e. Although FIG. 1 illustratesthe database(s) 145 a-145 d and 150 as separate from, but directlyconnected with, location/application server 140, in some embodiments oneor more of the databases may be distributed anywhere in the broadcastingnetwork 104. For example, location/application server 140 may be capableof accessing databases 145 a-145 d and 150, which may store IPaddresses, MAC addresses or other identifiers for access points 180a-180 c that are included in the target area 108.

In an embodiment, the location/application server 140 implements apoint-in-polygon search to determine the identifiers (e.g., IPaddresses, MAC addresses and other relevant identifiers) for accesspoints 180 a-180 c that are situated within the target area 108. Forexample, this can be done by determining the latitude and longitudeextent of the target area 108 (e.g., a polygon), identifying thoseaccess points 180 a-180 c that are situated within the target area 108,and obtaining the identifiers associated with such access points 180a-180 c. Alternatively or additionally, the location/application server140 may determine the latitude and longitude extent of the target area108 (e.g., a polygon), determine whether all or any portion of theaccess points 180 a-180 c (e.g., using point-in-polygon search) extendinto an area outside the target area 108, and obtain identifiersassociated with those access points 180 a-180 c. Details on techniquesfor implementing the point-in-polygon search may, for example, be foundin an article by Bourke, Paul, entitled “Determining If A Point Lies OnThe Interior Of A Polygon,” November 1987, and in U.S. Pat. No.5,124,693. The polygon-in-polygon search technique may, for example, befound in U.S. Pat. No. 5,124,693.

The obtained access point information may include, in addition torelevant identifiers, location coordinates such as coverage areas of theprovided WiFi service, and/or the latitude and longitude of the accesspoints 180 a-180 c, similar to the CGI information provided for 911services in a location center. The location/application server 140 mayforward a list of the determined identifiers (e.g., IP addresses, MACaddresses and/or other identifiers) to the CBC 130.

Alternatively or additionally, the location/application server 140 maydetermine the adjusted target area (e.g., a rectangle, square, orcircle) 114 that substantially estimates the representative shape of thetarget area 108 using one of any known best-fit algorithms. For example,the location/application server 140 may define a center of the targetarea 108 and a radius defining the adjusted target area 114 (i.e., acircle) that forms a best-fit circle encircling or just within thetarget area 108. Alternatively, the adjusted target area 114 may be a“best-fit” rectangle that fits around or within the boundary of thetarget area 108. Some best-fit algorithms may include a determination offirst and second best-fit areas, and if the first best-fit area minusthe target area 108 is greater than the second best-fit area minus thetarget area 108, the algorithm selects the second best-fit area as theadjusted target area 114. Although FIG. 1 shows a rectangular targetarea 108 inside of a circular adjusted target area 114, a person ofordinary skill in the art will recognize that a circular target area maylie inside of a rectangular adjusted target area.

The location/application server 140 may calculate location coordinates(e.g., latitude and longitude) of opposite corners of the adjustedtarget area 114. Alternatively, the location/application server 140 maycalculate a location coordinate of the center of the adjusted targetarea 114 and the radius, which define the adjusted target area 114.Although reference will herein be made to the opposite corners definingthe adjusted target area 114, it will be understood by those skilled inthe art that defining the adjusted target area 114 by determiningvarious other coordinates such as the center coordinate and theassociated radius is also within the scope of aspects of the invention.The location coordinates of the opposite corners may be forwarded to theCBC 130 for validation. The location/application server 140 then, orcoincidentally with the calculation of the adjusted target area 114,obtains identifiers as described above. Further details regardingdefining the boundary are provided below, e.g. with reference to FIG. 4.

Alternatively or additionally, the location/application server 140 mayadjust the boundaries of the “best fit” adjusted target area toaccommodate or ensure maximum broadcast coverage in the target area 108,using a “best coverage” algorithm. For example, a “best fit” adjustedtarget area 114 may include all access points 180 a-180 c within itsborders, but may not capture all of the relevant coverage area withinthe adjusted target area 114 because some percentage of coverage withinthe adjusted target area 114 is provided by access point 180 d locatedoutside the adjusted target area 114. For example, an access point 180 dmay be located outside of the adjusted target area 114 but itsassociated coverage area may intersect with a portion of the adjustedtarget area 114 to provide service to mobile device 110 j. In such acase, a “best coverage” algorithm may be executed to extend the outwardborders of the adjusted target area 114 to ensure that the broadcastalert is broadcast to access point 180 d to ensure maximum coverage ofthe adjusted target area 114. The location coordinates of the oppositecorners of the adjusted target area 114 may be forwarded to the CBC 130for validation.

Access point 180 e, which is located outside of adjusted target area 114and which does not overlap with adjusted target area 114, does notreceive the broadcasted alert. Access point 180 e is located on a movingbus. While access point 180 e may not initially be located inside of theadjusted target area 114, the access point 180 e may move into theadjusted target area 114 as the bus travels to a destination. In suchcases, the location/application server may continually monitor thetarget area 108 and the adjusted target area 114. Thelocation/application server then may update the stored locationinformation accordingly to ensure that alerts are broadcast to allaccess points in a designated target area.

The access points 180 a-180 d are registered as part of the relevantnetwork. Geographic location information associated with access points180 a-180 d are known to the location/application server 140. Forexample, the location/application server 140 may have access to thedatabase 150 containing a look-up table of registered access points andtheir associated location information, as described in more detailbelow. The location information can be geographic coordinates (e.g.,latitude and longitude) of the access points used to routecommunications between the access point and the connected mobiledevices. Alternatively, the location information can be the streetaddress of the access point, which may be converted into latitude andlongitude coordinates. For example, when an access point is initiallyregistered with the network, the user may be required to input a streetaddress for the location of the access point. The system may then obtainand store in a database the latitude and longitude coordinates for theaccess point. Details on techniques for locating access points may befound in PCT App. No. PCT/US07/82156, System And Method For DeterminingA Subscriber's Zone Information, Oct. 22, 2007, (31419-8034.WO00); PCTApp. No. PCT/US07/82133, Two Stage Mobile Device Geographic LocationDetermination, Oct. 22, 2007, (31419-8035.WO00); PCT App. No.PCT/US07/82136, System And Method For Utilizing IP-Based WirelessTelecommunications Client Location Data, Oct. 22, 2007,(31419-8036.WO00); U.S. patent application Ser. No. 12/089,905, SystemAnd Method For Determining Device Location In An IP-Based WirelessTelecommunications Network, Apr. 10, 2008, (31419-8028.US01); and PCTApp. No. PCT/US07/66579, Mobile Computing Device Geographic LocationDetermination, Apr. 12, 2007, (31419-8030.WO00).

The broadcast network 104 receives the CMAM (i.e., converted alertmessage) and the location coordinates of the opposite corners of therectangular shape 108 from the CBC 130. The location/application serverperforms a lookup of the registered devices in the database 150 toidentify those devices that are within the rectangular shape 108. Inother words, the location/application serer compares the coordinatesassociated with the registered devices to the location coordinates ofthe opposite corners of the rectangular shape 108, to select thoseregistered devices that are within the rectangular shape 108 forbroadcasting. Based on such determination, the broadcast network 104broadcasts the CMAM to the devices that are within the target areawithout substantially broadcasting the CMAM to devices located outsidethe target area.

FIG. 2 illustrates a look-up table 200 that operates in accordance withthe embodiments disclosed herein. Look-up table 200 can be used to trackthe locations of access points and the locations of registered devicesthat connect to the IMS network through the access points. The lookuptable may be stored in one or more databases in broadcast network 104.For example, the look-up table 200 may be stored in database 150, whichis accessible by the location/application server 140. Although notshown, the database 150 also may be accessible via the CBC 130, therebyallowing the CBC 130 to access the contents of the look-up table 200.The look-up table 200 contains a variety of rows and columns tofacilitate tracking the locations of access points and registereddevices, as well as tracking the status of alert messages.

An “Access Point ID” column 205 contains an identification number foreach access point that is connected to a registered device. As discussedabove, the identification number for each access point may be an IPaddress, a MAC address, or any other identification number operable todistinguish one access point from other access points in the look-uptable. A “Device Identifier” column 220 contains an identificationnumber for each registered device (also referred to as a “user equipmentidentification” or “UE ID”). The identification number for a registereddevice may be any number that is operable to distinguish the device fromother devices in the look-up table 200. For example, the DeviceIdentifier may be an International Mobile Equipment Identity (IMEI)number, an International Mobile Subscriber Identity (IMSI), a serialnumber (SN), a Mobile Subscriber Integrated Services DigitalNetwork-Number (MSISDN), or a Uniform Resource Identifier (URI). A“Location Information” column 210 contains the physical location of eachaccess point that serves a registered device. As discussed above, thelocation information may be any information that provides a geographiclocation of the access point, including a FIPS code, a ZIP code, or GPScoordinates. A person of ordinary skill in the art will recognize thatadditional types of geographic location information may be included inthe look-up table 210, including place names (e.g., Potomac RiverValley), street addresses (e.g., 211 Main St.), street intersections(e.g., Main St. & 1st Ave.), or neighborhoods (e.g., Hell's Kitchen).

A “Session State” column 215 contains an indication of the registrationstatus of each device that is currently in the look-up table 200, wherethe registration status reflects whether a respective device iscurrently registered on the IMS network (i.e., active session) or is notcurrently registered on the IMS network (i.e., inactive session). Adevice such as a mobile phone or smartphone may register with the IMSnetwork using well-known registration procedures involving commonlyunderstood IMS network components, including interrogating or servingcall session control function (US-CSCF) 160, proxy call session controlfunction (P-CSCF) 162, home subscriber server (HSS) 166, and accesssession border controller (A-SBC) 164. Further details on the IMSnetwork components and registration procedures may be found incommonly-assigned U.S. patent application Ser. No. 12/856,519 TitleENHANCED REGISTRATION MESSAGES IN INTERNET PROTOCOL MULTIMEDIASUBSYSTEMS, filing date 13 Aug. 2010, which is herein incorporated byreference in its entirety.

The IMS architecture typically does not provide for explicitderegistration of devices that are no longer operatively connected tothe IMS network. For example, when a user enters a coffee shop 170 a,the user's mobile phone 110 b may register for IMS services throughaccess point 180 a. However, when the user leaves the coffee shop 170 aand travels to an area that is not served by access point 180 a or adifferent access point, the mobile phone 110 b typically may not send aderegistration message to inform the IMS network that the mobile phone110 b is no longer within a range serviceable by the access point 180 a.As a result, the IMS databases may lack an up-to-date listing thataccurately reflects the connected devices. The present technologytherefore enables the accurate gathering of information regarding theregistration and deregistration of devices on the IMS network via thelook-up table 200.

The system may obtain deregistration status in a variety of ways. In oneembodiment, the system automatically deregisters a user device after apredetermined amount of time. For example, each time a device registerson the IMS network, the location/application server (or other componentof the system) sets the “Session State” to a value (e.g., “Active,”“communicating,” or ‘Y’) that indicates an active registration statusfor the newly registered device. In addition, the location/applicationserver (or other component of the system) may start a timer that expiresafter a predetermined amount of time. When the timer expires after thepredetermined amount of time has elapsed, the location/applicationserver automatically deregisters the user device from the IMS networkand indicates a deregistered status by assigning an appropriate value(e.g., “Inactive,” “not communicating,” or ‘N’) in the look-up table forthe deregistered device. If a deregistered device remains within thecoverage area of an access point through which it may connect to the IMSnetwork, the deregistered device simply repeats the registration processto re-establish access to the IMS network. In such case, the look-uptable is then updated to again indicate a registered status for thedevice.

In another embodiment, the system performs periodic refreshes of one ormore user devices in look-up table 200 in order to determineregistration status. For example, the location/application server 140may send a status request message (such as an Internet ping request) toeach registered device at a predetermined, fixed or variable interval.If the queried device responds, then the registration status of thedevice remains active in the look-up table 200. If, however, a responseis not received from the queried device, then the registration status isset to inactive in the look-up table 200. Although tracking registrationand deregistration of devices is described with respect to thelocation/application server 140, a person of ordinary skill in the artwill recognize that one or more additional components in the broadcastnetwork 104 may carry out the tracking functionality (e.g., the CBC130).

An “Alert Message” portion 225 of the table contains three columns thattrack the identity and status of multiple alert messages. A “Message ID”column 226 uniquely identifies each message received by the system on aper-device basis. The Message ID may be any value operable todistinguish one alert message from other alert messages in the look-uptable. A “Message Sent” column 227 contains an indication of whether aparticular alert (i.e., Message ID) has been sent to a particular device(i.e., device identifier) that lies within a determined target area, asdescribed above. When the broadcast network 104 sends an alert messageto a particular registered device, the system updates the correspondingentry in the look-up table 200, for example by indicating a ‘Y’ incolumn 227. In addition, a “Confirmation Received” column 228 containsan indication of whether the particular registered device returns anacknowledgement of the particular alert message. The system will assigna default value of ‘N’ in the “Confirmation Received” column 228 whenthe alert message is sent. If an acknowledgement is received, the systemwill update the look-table 200 to reflect a value of ‘Y’ in the“Confirmation Received” column 228.

A person of ordinary skill will appreciate that look-up table 200 may beused to track the identity and status of multiple alert messages on aper-UE or per-device identifier level. For example, look-up table 200may be used to track the status of a first alert message (Message IDD5546) to reflect that the system has sent Alert Message D5546 to afirst registered device (Device Identifier 548785463215465) but has notyet received a confirmation from the first registered device; the systemhas not sent the first Alert Message D5546 to a second registered device(Device Identifier 588745445189336) and accordingly has not yet receiveda confirmation from the second registered device; and so on.

Similarly, look-up table 200 may be used to track the status of a secondalert message (Message ID BBTGD) to reflect that the system has sentAlert Message BBTGD to a first registered device (Device Identifier548785463215465) but has not yet received a confirmation from the firstregistered device; the system has sent the second Alert Message BBTGD toa second registered device (Device Identifier 588745445189336) and hasreceived a confirmation from the second registered device; the systemhas sent the second Alert Message BBTGD to a third registered device(Device Identifier GGFUHDS) and has received a confirmation from thethird registered device; and so on.

A person of ordinary skill in the art will appreciate that look-up table200 may omit any of the columns depicted in FIG. 2 and/or may addadditional columns to track a variety of additional information,including but not limited to a time that a device is registered on theIMS network or a time that a device registration is refreshed on the IMSnetwork (i.e., a registration time field), a time that a deviceregistration fails to refresh on the IMS network, a time that a deviceis explicitly deregistered from the IMS network, a time that a messageis sent, a time that a confirmation is received, and informationregarding the nature and target area of the message.

Example Process/Call Flow

FIG. 3 shows a flow diagram of a method for targeted broadcasting ofalert messages, as described above. At step 1, the alert gateway 105sends the CMAM to the CBC 130. The CBC 130 receives the CMAM from thealert gateway 105, including the geographic location information(hereinafter “GLI”) of the target area 108. The CBC 130 validates theCMAM that is received from the alert gateway 105. If the CMAM isdetermined to be invalid, the CBC 130 may ignore the CMAM. Otherwise, ifthe CMAM is determined to be valid, processing continues at step 3. Atstep 3, the CBC 130 sends an acknowledgment to the alert gateway 105notifying the alerting network 102 that a valid CMAM was received. Atstep 4, the CBC 130 sends a CAP request to the alert gateway 105. Atstep 5, the alert gateway 105 responds with a CAP alert.

At step 6, the CBC 130 transmits the GLI and queries theapplication/location server 140 to determine the access points 180within the target area 108 to be used for target broadcasting.Alternatively or additionally, the CBC 130 queries theapplication/location server 140 to obtain the shape (e.g., geographicshape) that represents the target area 108 for target broadcasting. Therepresentative shape may, for example, take a form of a polygon, square,rectangle, circle or any shape that sufficiently represents the targetarea 108, as noted above. Both the determination of the one or moreaccess points 108 within the target area 108 and the representativeshape are based on the received GLI. The GLI may, for example, beselected from a Geographic Names Information System (GNIS). The GNIS isa database that includes name and locative information regardingphysical and cultural features located throughout the United States andits territories. The GNIS is part of a system that includes topographicmap names and bibliographic references. Alternatively or additionally,the GLI of the target area 108 may be received in terms of a particularcode, such as a FIPS code or ZIP code.

At step 7, the application/location server 140 sends an acceptancemessage to the CBC 130. At step 8, the application/location server 140transforms the GLI (e.g., GNIS, FIPS code, ZIP code, or GPS coordinates)into the shape that represents the target area 108. The representativeshape may be an approximate geographic representation that bestestimates the target area 108. The application/location server 140 mayhave access to one or more processors operable to approximate therepresentative shape of the target area 108 based on the GLI.Alternatively, the GLI is received in terms of the representative shape(e.g., 5 mile radius having a center at a defined coordinate). Using thelook-up table 200, the application/location server 140 identifies theaccess points and registered devices located within the target area, asdescribed above.

The location/application server 140 then transmits the alert messagethrough the IMS network to each registered device within the targetarea. For example, the location/application server 140 transmits thealert to one or more session controllers 161 (step 9). The one or moresession controllers transmits the alert message to a border controller165 (step 10). The border controller 165 transmits the alert message toaccess point 170 (step 11). The access point 170 then transmits thealert message to a registered device 110 (step 12).

At step 13, the registered device (e.g., a mobile device) performsbehavior for an alert message. Such behavior may include providing anaudible or visual alert on the mobile device in accordance with thecontent of the alert. For example, in the case of an AMBER Alert, theregistered device may display an image of an abducted child, the allegedabductor, and information regarding the vehicle being driven by thealleged abductor. For an environmental emergency, the alert may provideinstructions as to where to go (e.g. routes to take for a hurricaneevacuation).

The registered device sends to the location/application server 140 anacknowledgement that the alert was received. At step 14, the registereddevice sends an acknowledge message to access point 170. At step 15,access point 170 sends the acknowledge message to border controller 165.At step 16, the border controller 165 sends the acknowledge message tothe one or more session controllers 161. At step 17, the one or moresession controllers 161 send the acknowledge message to thelocation/application server 140. At step 18, the location/applicationserver 140 sends the acknowledge message to the CBC 130.

FIG. 4 shows a geographic illustration of several counties 442 havingdevices located throughout. As illustrated in FIG. 4, a target area 408includes portions of three of these counties 442. In contrast, arepresentation of the target area 408 by FIPS code alone would definethe target area 408 as encompassing the entire three counties 442,instead of only the select portions of these three counties 442. Suchwould unnecessarily alert device users outside of the intended targetarea 408.

For target broadcasting, the location/application server 140 accessesthe lookup-table 200 in database 150 to identify access points locatedwithin the target area 408. The location/application server 140 mayperform a point-in-polygon search, polygon-in-polygon search or similarsearch to identify the identifiers within the target area 408. Thelocation/application server 140 creates a list of identifiers for accesspoints located in the target area 408 for forwarding to the CBC.

Additionally or alternatively, the location/application server 140calculates the adjusted target area 414 that substantially approximatesthe target area 408. The adjusted target area 414 approximation of thetarget area 408 allows for a two-point determination of the adjustedtarget area 414. For example, as illustrated in FIG. 4, two oppositepoints of the adjusted target area 414 may define a rectangular shape.The two points may comprise a first latitude/longitude coordinate(lat.sub.1, long.sub.1) and a second latitude/longitude coordinate(lat.sub.2, long.sub.2). The boundary of the adjusted target area 414 isthus readily defined by an area between the first and second latitudes,and between the first and second longitudes. The location/applicationserver 140 determines these two opposite points (lat.sub.1, long.sub.1),(lat.sub.2, long.sub.2) for forwarding to the CBC 130. A person ofordinary skill in the art will appreciate that other methods fordefining the adjusted target area 414 are within the scope of theinvention described herein. For example, the adjusted target area 414may be a circle defined by a center coordinate and a radius.

Upon determining the list of identifiers of the respective access pointswithin the target area 408 and/or the two opposite points (lat.sub.1,long.sub.1), (lat.sub.2, long.sub.2) of the adjusted target area 414,the location/application server 140 forwards the list of identifiers ofthe respective access points in the target area 408 and/or thecoordinates of the opposite points of the adjusted target area 414 tothe CBC. The CBC 130 then transmits the alert to the registered devicesin the target area 408 without substantially broadcasting outside thetarget area 408.

Conclusion

The discussion above has provided a brief, general description of asuitable environment in which aspects of the invention can beimplemented. Although not required, aspects of the invention aredescribed herein in the general context of computer-executableinstructions, such as routines that may be executed by a general-purposedata processing device, e.g., a networked server computer, mobiledevice, etc. Those skilled in the relevant art will appreciate thataspects the invention can be practiced with other communications, dataprocessing, or computer system configurations, including: Internetappliances, hand-held devices (including personal digital assistants(PDAs) and smartphones), wearable computers, all manner of corded,landline, fixed line, cordless, cellular or mobile phones,multi-processor systems, microprocessor-based or programmable consumerelectronics, set-top boxes, network PCs, mini-computers, mainframecomputers, media players, and the like. Indeed, the terms “computer,”“server,” and the like are generally used interchangeably herein, andrefer to any of the above devices and systems, as well as any dataprocessor.

While aspects of the invention, such as certain functions, are describedas being performed exclusively or primarily on a single device, theinvention can also be practiced in distributed environments wherefunctions or modules are shared among disparate processing devices,which are linked through a communication network, such as a Local AreaNetwork (LAN), Wide Area Network (WAN), or the Internet. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices.

Aspects of the invention may be stored or distributed on tangiblecomputer-readable media, including magnetically or optically readablecomputer discs, hard-wired or preprogrammed chips (e.g., EEPROMsemiconductor chips), nanotechnology memory, biological memory, or otherdata storage media. Alternatively or additionally, computer implementedinstructions, data structures, screen displays, and other data underaspects of the invention may be distributed over the Internet or overother networks (including wireless networks), on a propagated signal ona propagation medium (e.g., an electromagnetic wave(s), a sound wave(s),etc.) over a period of time, or they may be provided on any analog ordigital network (packet switched, circuit switched, or other scheme).

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” As used herein, the terms “connected,”“coupled,” or any variant thereof means any connection or coupling,either direct or indirect, between two or more elements; the coupling orconnection between the elements can be physical, logical, or acombination thereof. Additionally, the words “herein,” “above,” “below,”and words of similar import, when used in this application, refer tothis application as a whole and not to any particular portions of thisapplication. Where the context permits, words in the above DetailedDescription using the singular or plural number may also include theplural or singular number respectively. The word “or,” in reference to alist of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,and any combination of the items in the list.

The above Detailed Description of examples of the invention is notintended to be exhaustive or to limit the invention to the precise formdisclosed above. While specific examples for the invention are describedabove for illustrative purposes, various equivalent modifications arepossible within the scope of the invention, as those skilled in therelevant art will recognize. For example, while aspects of the inventionare described above with respect to capturing and routing digitalimages, any other digital content may likewise be managed or handled bythe system provided herein, including video files, audio files, and soforth. While processes or blocks are presented in a given order,alternative implementations may perform routines having steps, or employsystems having blocks, in a different order, and some processes orblocks may be deleted, moved, added, subdivided, combined, and/ormodified to provide alternative or subcombinations. Each of theseprocesses or blocks may be implemented in a variety of different ways.Also, while processes or blocks are at times shown as being performed inseries, these processes or blocks may instead be performed orimplemented in parallel, or may be performed at different times.

The teachings of the invention provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various examples described above can be combined to providefurther implementations of the invention.

Any patents and applications and other references noted above, includingany that may be listed in accompanying filing papers, are incorporatedherein by reference. Aspects of the invention can be modified, ifnecessary, to employ the systems, functions, and concepts of the variousreferences described above to provide yet further implementations of theinvention.

Other changes can be made to the invention in light of the aboveDetailed Description. While the above description describes certainexamples of the invention, and describes the best mode contemplated, nomatter how detailed the above appears in text, the invention can bepracticed in many ways. Details of the system may vary considerably inits specific implementation, while still being encompassed by theinvention disclosed herein. As noted above, particular terminology usedwhen describing certain features or aspects of the invention should notbe taken to imply that the terminology is being redefined herein to berestricted to any specific characteristics, features, or aspects of theinvention with which that terminology is associated. In general, theterms used in the following claims should not be construed to limit theinvention to the specific examples disclosed in the specification,unless the above Detailed Description section explicitly defines suchterms. Accordingly, the actual scope of the invention encompasses notonly the disclosed examples, but also all equivalent ways of practicingor implementing the invention under the claims.

We claim:
 1. A method to broadcast alert messages to IP MultimediaSubsystem (IMS)-enabled devices connected to wireless access pointslocated in an alert target area, comprising: maintaining a dataset oflocations of known wireless access points and, for each access point, adevice identifier and a session state of IMS-enabled devices that accessthe known wireless access point; receiving an alert message, wherein thealert message includes a link to external data comprising geographiclocation information for an alert target area in which the alert messageis to be broadcast; retrieving, via the link to external data, thegeographic location information for the alert target area in which thealert message is to be broadcast; identifying one or more wirelessaccess points located within the alert target area by comparing thelocations of known wireless access points to the alert target area toidentify wireless access points that fall within the alert target area;for each identified wireless access point located within the alerttarget area: using the dataset to identify one or more IMS-enableddevices that are indicated as having an active session with theidentified wireless access point; and, for each determined IMS-enableddevice indicated as having an active session, using the dataset toretrieve a device identifier associated with the IMS-enabled device; andsending the received alert message to each IMS-enabled device indicatedas having an active session; and wherein the method further comprisesone or more of the following (a), (b) or (c): (a) maintaining in thedataset of locations of known wireless access points, for each alertmessage, a message identifier and an indication of whether the messagehas been sent to an IMS-enabled device associated with a deviceidentifier, and updating the dataset, upon sending the received alertmessage, to indicate that the alert message has been sent; or (b)maintaining in the dataset of locations of known wireless access points,for each alert message, a message identifier and an indication of amessage confirmation, the message confirmation corresponding to thereceipt of the message by an IMS-enabled device to which the message wassent, and updating the dataset of locations of known wireless accesspoints, upon receiving the message confirmation, to indicate that thealert message has been received by the IMS-enabled device to which themessage was sent; or (c) maintaining in the dataset of locations ofknown wireless access points, for each device identifier, an indicationof an amount of time that has elapsed since the device identifier waslast registered on an IMS network, wherein the alert message isbroadcast over an IMS network, and if the elapsed time is greater thanor equal to a predetermined threshold, updating the session state toindicate that the device is inactive.
 2. The method of claim 1, whereinthe alert message is an AMBER Alert.
 3. The method of claim 1, whereinthe alert message is a Presidential Alert or an alert corresponding to aweather condition.
 4. The method of claim 1, wherein the geographiclocation information for an alert target area is a shape selected from acircle or polygon.
 5. The method of claim 1, wherein the geographiclocation information for an alert target area is a set of GeographicPositioning System (GPS) coordinates or Geographic Names InformationSystem (GNIS) data.
 6. The method of claim 1, wherein the geographiclocation information for an alert target area is a Zone Improvement Plan(ZIP) code or a Federal Information Processing Standards (FIPS) code. 7.The method of claim 1, wherein the IMS-enabled device is a mobile phone.8. A tangible computer-readable medium, excluding transitory signals,and storing instructions that, when executed by a processor of an IPMultimedia Subsystem (IMS) network, cause the IMS network to perform amethod for broadcast alert messages to IMS-enabled devices connected towireless access points located in an alert target area, comprising:maintaining a dataset of locations of known wireless access points and,for each access point, a device identifier and a session state ofIMS-enabled devices that access the known wireless access point;receiving an alert message to be broadcast to an alert target area,wherein the alert message includes a link to external data comprisinggeographic location information for the alert target area in which thealert message is to be broadcast; retrieving, via the link to externaldata, the geographic location information for the alert target area inwhich the alert message is to be broadcast; identifying one or morewireless access points located within the alert target area by comparingthe locations of known wireless access points to the alert target areato identify wireless access points that fall within the alert targetarea; for each identified wireless access point located within the alerttarget area: using the dataset to identify one or more IMS-enableddevices that are indicated as being in communication with the identifiedwireless access point; and, for each determined IMS-enabled deviceindicated as being in communication with the identified wireless accesspoint, using the dataset to retrieve a device identifier associated withthe IMS-enabled device; and sending the received alert message to eachIMS-enabled device indicated as being in communication with theidentified wireless access point; and wherein the method furthercomprises one or more of the following (a), (b) or (c): (a) maintainingin the dataset of locations of known wireless access points, for eachalert message, a message identifier and an indication of whether themessage has been sent to an IMS-enabled device associated with a deviceidentifier, and updating the dataset, upon sending the received alertmessage, to indicate that the alert message has been sent; or (b)maintaining in the dataset of locations of known wireless access points,for each alert message, a message identifier and an indication of amessage confirmation, the message confirmation corresponding to thereceipt of the message by an IMS-enabled device to which the message wassent, and updating the dataset of locations of known wireless accesspoints, upon receiving the message confirmation, to indicate that thealert message has been received by the IMS-enabled device to which themessage was sent; or (c) maintaining in the dataset of locations ofknown wireless access points, for each device identifier, an indicationof an amount of time that has elapsed since the device identifier waslast registered on an IMS network, wherein the alert message isbroadcast over an IMS network, and if the elapsed time is greater thanor equal to a predetermined threshold, updating the session state toindicate that the device is inactive.
 9. The tangible computer-readablemedium of claim 8, wherein the alert message is an AMBER Alert.
 10. Thetangible computer-readable medium of claim 8, wherein the alert messageis a Presidential Alert or an alert corresponding to weather condition.11. The tangible computer-readable medium of claim 8, wherein thegeographic location information for the alert target area is a set ofGPS coordinates.
 12. The tangible computer-readable medium of claim 8,wherein the geographic location information for the alert target area isGeographic Names Information System (GNIS) data, a Zone Improvement Plan(ZIP) code, or a Federal Information Processing Standards (FIPS) code.13. The tangible computer-readable medium of claim 8, wherein theinstructions further cause the IMS network to convert the receivedgeographic location information for the alert target area from a firsttype to a second type.
 14. The tangible computer-readable medium ofclaim 8, wherein the IMS-enabled device is a mobile phone.
 15. An IPMultimedia Subsystem (IMS) network apparatus for assisting in thebroadcast of alert messages to IMS-enabled devices connected to wirelessaccess points located in an alert target area, comprising: at least oneprocessor; at least memory, coupled to the processor, and storinginstructions for performing a method comprising: maintaining a datasetof locations of known wireless access points and, for each access point,a device identifier and a session state of IMS-enabled devices thataccess the known wireless access point; receiving an alert message to bebroadcast to an alert target area, wherein the alert message includes alink to external data comprising geographic location information for thealert target area in which the alert message is to be broadcast;retrieving, via the link to external data, the geographic locationinformation for the alert target area in which the alert message is tobe broadcast; identifying one or more wireless access points locatedwithin the alert target area by comparing the locations of knownwireless access points to the alert target area to identify wirelessaccess points that fall within the alert target area; for eachidentified wireless access point located within the alert target area:using the dataset to identify one or more IMS-enabled devices that areindicated as being in communication with the identified wireless accesspoint; and, for each determined IMS-enabled device indicated as being incommunication with the identified wireless access point, using thedataset to retrieve a device identifier associated with the IMS-enableddevice; and sending the received alert message to each IMS-enableddevice indicated as being in communication with the identified wirelessaccess point.
 16. The apparatus of claim 15, wherein the method furthercomprises one or more of the following (a), (b) or (c): (a) maintainingin the dataset of locations of known wireless access points, for eachalert message, a message identifier and an indication of whether themessage has been sent to an IMS-enabled device associated with a deviceidentifier, and updating the dataset, upon sending the received alertmessage, to indicate that the alert message has been sent; or (b)maintaining in the dataset of locations of known wireless access points,for each alert message, a message identifier and an indication of amessage confirmation, the message confirmation corresponding to thereceipt of the message by an IMS-enabled device to which the message wassent, and updating the dataset of locations of known wireless accesspoints, upon receiving the message confirmation, to indicate that thealert message has been received by the IMS-enabled device to which themessage was sent; or (c) maintaining in the dataset of locations ofknown wireless access points, for each device identifier, an indicationof an amount of time that has elapsed since the device identifier waslast registered on an IMS network, wherein the alert message isbroadcast over an IMS network, and if the elapsed time is greater thanor equal to a predetermined threshold, updating the session state toindicate that the device is inactive.
 17. The apparatus of claim 15,wherein the alert message is an AMBER alert.
 18. The apparatus of claim15, wherein the alert message is a Presidential Alert or an alertcorresponding to a weather condition.
 19. The apparatus of claim 15,wherein the geographic location information for the alert target area isa set of GPS coordinates.
 20. The method of claim 15, wherein thegeographic location information for the alert target area is GeographicNames Information System (GNIS) data, a Zone Improvement Plan (ZIP)code, or a Federal Information Processing Standards (FIPS) code.